Recently, the term ‘DevOps’ (compound of ‘development’ and ‘operations’) has been coined to describe a software development process that strives to develop, test, and deploy complex software applications in a seamless, frequent, and efficient manner. In order to accomplish this goal, the software testing process must become much more integrated with the software development process so that source code can be written, compiled, tested, and deployed to production environments without unnecessary delays.
However, most current software testing processes rely on a wide variety of automation testing tools (e.g., Sahi, Selenium) to automatically execute test cases against production software applications and environments. However, these automation testing tools typically require different configuration parameters, have different dependencies based upon the source code and application being tested, and provide different test reports and error codes. In some cases, the automation testing tools may be limited to executing test cases written in a specific language or customized for a certain type of application. Therefore, it is difficult to automatically and seamlessly execute computer software test cases for the same application and/or code base when different automation testing tools are required.
In addition, there is typically a lack of integration between the various systems that software developers and testers use, such as source code management systems (e.g., Git), software development issue tracking systems (e.g., JIRA) and software automation and deployment systems (e.g., Jenkins, uDeploy). Thus, changes to source code are typically not automatically recognized by software automation and testing systems for execution of related software tests, and similarly, results of software testing are not automatically communicated to issue tracking systems for remediation of errors in the application under development. Such results of testing are also not typically transmitted to application deployment systems to ensure that a stable build is available in the production software environment.